package cn.kgc.gmall.utils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * redis连接工具类
 */
public class RedisUtil {

    // 获取redis连接对象 redis的依赖中提供了连接池
    private static JedisPool jedisPool;

    /**
     * 通过连接池获取jedis的连接对象
     * @return
     */
    public static Jedis getJedisPool(){
        if (jedisPool == null){
            // 创建连接池对象
            JedisPoolConfig poolConfig  = new JedisPoolConfig();
            // 设置最大等待时间
            poolConfig.setMaxWaitMillis(5000L);
            // 最大连接数
            poolConfig.setMaxTotal(100);
            // 最大空闲数
            poolConfig.setMaxIdle(5);
            // 最小空闲数
            poolConfig.setMinIdle(5);
            poolConfig.setBlockWhenExhausted(true); //连接耗尽是否等待
            poolConfig.setTestOnBorrow(true); //取连接的时候进行一下测试 ping pong
            jedisPool = new JedisPool(poolConfig,"hadoop102",6379);
            return jedisPool.getResource();
        }else{
            return jedisPool.getResource();

        }
    }


}
